﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NakedObjects;
using System.ComponentModel;

namespace RTC.Modelo.Entidades
{
    [DisplayName("Asignatura")]
    public class AsignaturaExterna : Entidad
    {
        [Hidden]
        public virtual int Id { set; get; }

        [Title,MemberOrder(10), DisplayName("Asignatura")]
        public virtual String Nombre { set; get; }

        [Optionally, MemberOrder(20), DisplayName("Codigo")]
        public virtual String Codigo { set; get; }

        [Optionally,MemberOrder(30), DisplayName("Estudio")]
        public virtual EstudioExterno Estudio { get; set; }

        [Hidden]        
        public virtual int IdRef { get; set; }
        [Hidden]
        public virtual Double NroCreditos { get; set; }
        

        //#region Comentario (collection)
        //private ICollection<ComentarioAsignaturaExterna> _ComentarioAsignaturaExterna = new List<ComentarioAsignaturaExterna>();

        //public virtual ICollection<ComentarioAsignaturaExterna> ComentarioAsignaturaExterna
        //{
        //    get
        //    {
        //        return _ComentarioAsignaturaExterna;
        //    }
        //    set
        //    {
        //        _ComentarioAsignaturaExterna = value;
        //    }
        //}

        
        //[DisplayName("Eliminar Comentario")]
        //public void RemoveFromComentarioAsignaturaExterna(ComentarioAsignaturaExterna value)
        //{
        //    if (_ComentarioAsignaturaExterna.Contains(value))
        //    {
        //        _ComentarioAsignaturaExterna.Remove(value);
        //    }
        //}

        //public IList<ComentarioAsignaturaExterna> ChoicesRemoveFromComentarioAsignaturaExterna()
        //{
        //    return _ComentarioAsignaturaExterna.ToList();
        //}

        //[DisplayName("Nuevo Comentario")]
        //public virtual Comentario CrearComentarioAsignatura()
        //{
        //    ComentarioAsignaturaExterna c = Container.NewTransientInstance<ComentarioAsignaturaExterna>();
        //    c.AsignaturaExterna = this;
        //    return c;
        //}

        //#endregion
        [Disabled, DisplayName("Fecha Modificacion")]
        public virtual DateTime ModifiedDate { get; set; }

        [Hidden]
        protected override void SetModifiedDate()
        {
            ModifiedDate = DateTime.Now;
        }
    }
}
